/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.gob.fonafe.dao.impl;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.sql.DataSource;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;
import org.springframework.stereotype.Repository;
import pe.gob.fonafe.dao.ConsultaRecDAO;
import pe.gob.fonafe.dao.impl.stored.ListarConsultaReclamoSP;
import pe.gob.fonafe.dao.impl.stored.ObtenerFilesConsultaReclamoSP;
import pe.gob.fonafe.dao.impl.stored.ObtenerUsuariosConsultaSP;
import pe.gob.fonafe.domain.ConsultaBean;
import pe.gob.fonafe.domain.FilesConsultaBean;

/**
 *
 * @author Irving
 */
@Repository
public class ConsultaRecDAOImp extends SimpleJdbcDaoSupport implements ConsultaRecDAO{

   private static final Logger logger = Logger.getLogger(AdministradorDAOImp.class);
    
   @Autowired
   public ConsultaRecDAOImp(DataSource dataSource) {
        super.setDataSource(dataSource);
    }
   
    public List<ConsultaBean> buscarConsultaReclamo(int id_empresa, String tipo_consul_rec) {
        List<ConsultaBean> listaResult = new ArrayList<ConsultaBean>();
        logger.info("param buscarConsultaReclamo[" + id_empresa+" "+tipo_consul_rec + "]");
        try{
            ListarConsultaReclamoSP sp = new ListarConsultaReclamoSP(getDataSource());
            Map results = sp.execute(id_empresa, tipo_consul_rec);
            listaResult = (List<ConsultaBean>) results.get("cCursor");
        }catch(Exception ex){
            ex.printStackTrace();
            logger.error(ex);
        }
        return listaResult;
    }

    public List<ConsultaBean> buscarUsuariosBienReclamo(String tipo_consul_rec, int idUsuario, String idBien, String idSubasta) {
        List<ConsultaBean> listaResult = new ArrayList<ConsultaBean>();
        logger.info("param buscarUsuariosBienReclamo[" +tipo_consul_rec + "]");
        try{
            ObtenerUsuariosConsultaSP sp = new ObtenerUsuariosConsultaSP(getDataSource());
            Map results = sp.execute(tipo_consul_rec, idUsuario, idBien, idSubasta);
            listaResult = (List<ConsultaBean>) results.get("cCursor");
        }catch(Exception ex){
            ex.printStackTrace();
            logger.error(ex);
        }
        return listaResult;
    }

    public List<FilesConsultaBean> buscarUsuariosBienReclamo(String idSubasta, String idBien) {
         List<FilesConsultaBean> listaResult = new ArrayList<FilesConsultaBean>();
        
        try{
            ObtenerFilesConsultaReclamoSP sp = new ObtenerFilesConsultaReclamoSP(getDataSource());
            Map results = sp.execute(idSubasta, idBien);
            listaResult = (List<FilesConsultaBean>) results.get("cCursor");
        }catch(Exception ex){
            ex.printStackTrace();
            logger.error(ex);
        }
        return listaResult;
    }
    
}
